<!DOCTYPE html>
<html lang="en-us">
<head><head>
    <meta name="google-site-verification" content="9vIieCe-Qpd78QOmBl63rGtIVbhY6sYyuxX3j8XWBA4" />
    <meta name="baidu-site-verification" content="LRrmH41lz7" />
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="google-site-verification" content="xBT4GhYoi5qRD5tr338pgPM5OWHHIDR6mNg1a3euekI" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <meta name="description" content="redis cluster docker compose部署，常用命令，搭建，慢查询处理,zabbix监控">
    
    <meta name="keyword"  content=", , 马少勋的网络日志, 马少勋的博客, Mashaoxun Blog, 博客, 个人网站, 互联网, Web, 云原生, PaaS, Istio, Kubernetes, 微服务, Microservice">
    <link rel="shortcut icon" href="/blog/img/favicon.ico">

    <title>redis维护-马少勋的博客 | MaShaoXun Blog</title>

    <link rel="canonical" href="/blog/2020/02/24/redis/">

    <link rel="stylesheet" href="/blog/css/iDisqus.min.css"/>
	
    
    <link rel="stylesheet" href="/blog/css/bootstrap.min.css">

    
    <link rel="stylesheet" href="/blog/css/hux-blog.min.css">

    
    <link rel="stylesheet" href="/blog/css/syntax.css">

    
    <link rel="stylesheet" href="/blog/css/zanshang.css">

    
    <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css">
    
    
    <script src="/blog/js/jquery.min.js"></script>
    
    
    <script src="/blog/js/bootstrap.min.js"></script>
    
    
    <script src="/blog/js/hux-blog.min.js"></script>
	
    
    
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/highlight.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/languages/dockerfile.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/languages/vim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/languages/yaml.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/languages/go.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/languages/bash.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/languages/shell.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/languages/nginx.min.js"></script>
    <script>hljs.initHighlightingOnLoad();</script>
</head>
</head>

<nav class="navbar navbar-default navbar-custom navbar-fixed-top">
    <div class="container-fluid">
        
        <div class="navbar-header page-scroll">
            <button type="button" class="navbar-toggle">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">Mashaoxun Blog</a>
        </div>

        
        
        <div id="huxblog_navbar">
            <div class="navbar-collapse">
                <ul class="nav navbar-nav navbar-right">
                    <li>
                        <a href="/blog">Home</a>
                    </li>
                    
                    <li>
                        <a href="/blog/categories/django">django</a>
                    </li>
                    
                    <li>
                        <a href="/blog/categories/docker">docker</a>
                    </li>
                    
                    <li>
                        <a href="/blog/categories/k8s">k8s</a>
                    </li>
                    
                    <li>
                        <a href="/blog/categories/redis">redis</a>
                    </li>
                    
                    <li>
                        <a href="/blog/categories/swarm">swarm</a>
                    </li>
                    
                    <li>
                        <a href="/blog/categories/%E5%AD%98%E5%82%A8">存储</a>
                    </li>
                    
                    <li>
                        <a href="/blog/categories/%E7%9B%91%E6%8E%A7">监控</a>
                    </li>
                    
                    
		    
                        <li><a href="/blog/top/about/">ABOUT</a></li>
                    

                    
		    <li>
                        <a href="/blog/search">SEARCH <img src="/blog/img/search.png" height="15" style="cursor: pointer;"></a>
		    </li>
                    
                </ul>
            </div>
        </div>
        
    </div>
    
</nav>
<script>
    
    
    
    var $body   = document.body;
    var $toggle = document.querySelector('.navbar-toggle');
    var $navbar = document.querySelector('#huxblog_navbar');
    var $collapse = document.querySelector('.navbar-collapse');

    $toggle.addEventListener('click', handleMagic)
    function handleMagic(e){
        if ($navbar.className.indexOf('in') > 0) {
        
            $navbar.className = " ";
            
            setTimeout(function(){
                
                if($navbar.className.indexOf('in') < 0) {
                    $collapse.style.height = "0px"
                }
            },400)
        }else{
        
            $collapse.style.height = "auto"
            $navbar.className += " in";
        }
    }
</script>




<style type="text/css">
    header.intro-header {
        background-image: url('/blog/img/youyou.jpg')
    }
</style>
<header class="intro-header">
    <div class="container">
        <div class="row">
            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
                <div class="post-heading">
                    <div class="tags">
                        
                        <a class="tag" href="/blog/tags/redis" title="redis">
                            redis
                        </a>
                        
                        <a class="tag" href="/blog/tags/%E7%9B%91%E6%8E%A7" title="监控">
                            监控
                        </a>
                        
                    </div>
                    <h1>redis维护</h1>
                    <h2 class="subheading"></h2>
                    <span class="meta">
			Posted by 
			
			         &#34;马少勋&#34;
			 
			on 
			Monday, January 1, 0001
                        
                    </span>
                </div>
            </div>
        </div>
    </div>
</header>




<article>
    <div class="container">
        <div class="row">

            
            <div class="
                col-lg-8 col-lg-offset-2
                col-md-10 col-md-offset-1
                post-container">

                
                <header>
                    <h2>TOC</h2>
                </header>
                <nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#redis知识点">redis知识点</a></li>
<li><a href="#常用命令">常用命令</a></li>
<li><a href="#info命令详解">info命令详解</a></li>
<li><a href="#redis-cluster搭建">redis-cluster搭建：</a></li>
<li><a href="#zabbix监控">zabbix监控</a></li>
</ul></li>
</ul>
</nav>
                
                

<h2 id="redis知识点">redis知识点</h2>

<ul>
<li>redis内部分为16个库。redis-cluster不分库。</li>
<li>redis由于是单线程，太多的慢查询会导致集群timeout。</li>
</ul>

<h2 id="常用命令">常用命令</h2>

<pre><code>1、主机安装redis-cli命令
yum install redis -y

2、连接远程redis（-p端口，-a密码，-c集群模式）
redis-cli -h 192.168.0.100 -p 7000 -a asdfasdf -c

3、查看集群状态命令
cluster info

4、查看node状态命令
cluster nodes

5、查看redis版本，内存，cpu，连接数等
info

6、查看所有key，支持正则匹配。生产不要用(*可以正则匹配)
keys *

7、查看连接命令
client list

8、查看某个key的过期时间 
ttl key_name
例如： 127.0.0.1:7000&gt; ttl 33291-bestbuy-admin-user
-&gt; Redirected to slot [2891] located at 10.120.128.189:7000
(integer) -1
上面的-1就是没写过期时间

9、迭代方式查看所有key 
scan ？

10、查看当前连接数
info clients

11、查看最大连接数限制
CONFIG GET maxclients

12、查看最近N条慢查询的语句详情（最近的慢查询，N为数量，不能超过slowlog-max-len，类似hsitory -200）
SLOWLOG get [N]

13、查看慢查询最大记录数量（默认128，生产改成了1000，类似HISTSIZE=1000）
config get slowlog-max-len

14、设置慢查询最大记录数量为1000
config set slowlog-max-len 1000

15、查看当前慢查询数量（类似history|wc -l）
slowlog len

16、查看超过多少秒视为慢查询
config get slowlog-log-slower-than

17、清空当前慢查询记录。（类似清空当前history）
slowlog reset

18、免登陆执行命令（-h主机，-p端口，-a密码，-c集群，后面接命令）
redis-cli -h 127.0.0.1 -p 7000 -a sdfasdfa -c slowlog len

19、容器外部执行redis内部命令（例：获取最近1000条慢查询）
docker exec -it redis-7000 /bin/sh -c &quot;redis-cli -h 127.0.0.1 -p 7000 -a sdfasdf -c slowlog get 1000&quot; &gt; slowlog.txt
</code></pre>

<h2 id="info命令详解">info命令详解</h2>

<pre><code>192.168.64.102:9021&gt; info all
# Server(服务器信息)
redis_version:3.0.0                              #redis服务器版本
redis_git_sha1:00000000                  #Git SHA1
redis_git_dirty:0                                    #Git dirty flag
redis_build_id:6c2c390b97607ff0    #redis build id
redis_mode:cluster                              #运行模式，单机或者集群
os:Linux 2.6.32-358.2.1.el6.x86_64 x86_64 #redis服务器的宿主操作系统
arch_bits:64                                         #架构(32或64位)
multiplexing_api:epoll                        #redis所使用的事件处理机制
gcc_version:4.4.7                                #编译redis时所使用的gcc版本
process_id:12099                               #redis服务器进程的pid
run_id:63bcd0e57adb695ff0bf873cf42d403ddbac1565  #redis服务器的随机标识符(用于sentinel和集群)
tcp_port:9021                                #redis服务器监听端口
uptime_in_seconds:26157730   #redis服务器启动总时间，单位是秒
uptime_in_days:302                    #redis服务器启动总时间，单位是天
hz:10                                #redis内部调度（进行关闭timeout的客户端，删除过期key等等）频率，程序规定serverCron每秒运行10次。
lru_clock:14359959      #自增的时钟，用于LRU管理,该时钟100ms(hz=10,因此每1000ms/10=100ms执行一次定时任务)更新一次。
config_file:/redis_cluster/etc/9021.conf  #配置文件路径

# Clients(已连接客户端信息)
connected_clients:1081       #已连接客户端的数量(不包括通过slave连接的客户端)
client_longest_output_list:0 #当前连接的客户端当中，最长的输出列表，用client list命令观察omem字段最大值
client_biggest_input_buf:0   #当前连接的客户端当中，最大输入缓存，用client list命令观察qbuf和qbuf-free两个字段最大值
blocked_clients:0                   #正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量

# Memory(内存信息)
used_memory:327494024                 #由redis分配器分配的内存总量，以字节为单位
used_memory_human:312.32M       #以人类可读的格式返回redis分配的内存总量
used_memory_rss:587247616         #从操作系统的角度，返回redis已分配的内存总量(俗称常驻集大小)。这个值和top命令的输出一致
used_memory_peak:1866541112    #redis的内存消耗峰值(以字节为单位) 
used_memory_peak_human:1.74G #以人类可读的格式返回redis的内存消耗峰值
used_memory_lua:35840                   #lua引擎所使用的内存大小(以字节为单位)
mem_fragmentation_ratio:1.79          #used_memory_rss和used_memory之间的比率，小于1表示使用了swap，大于1表示碎片比较多
mem_allocator:jemalloc-3.6.0            #在编译时指定的redis所使用的内存分配器。可以是libc、jemalloc或者tcmalloc

# Persistence(rdb和aof的持久化相关信息)
loading:0                                                    #服务器是否正在载入持久化文件
rdb_changes_since_last_save:28900855 #离最近一次成功生成rdb文件，写入命令的个数，即有多少个写入命令没有持久化
rdb_bgsave_in_progress:0                  #服务器是否正在创建rdb文件
rdb_last_save_time:1482358115        #离最近一次成功创建rdb文件的时间戳。当前时间戳 - rdb_last_save_time=多少秒未成功生成rdb文件
rdb_last_bgsave_status:ok                   #最近一次rdb持久化是否成功
rdb_last_bgsave_time_sec:2                #最近一次成功生成rdb文件耗时秒数
rdb_current_bgsave_time_sec:-1        #如果服务器正在创建rdb文件，那么这个域记录的就是当前的创建操作已经耗费的秒数
aof_enabled:1                                          #是否开启了aof
aof_rewrite_in_progress:0                     #标识aof的rewrite操作是否在进行中
aof_rewrite_scheduled:0              
#rewrite任务计划，当客户端发送bgrewriteaof指令，如果当前rewrite子进程正在执行，那么将客户端请求的bgrewriteaof变为计划任务，待aof子进程结束后执行rewrite 
aof_last_rewrite_time_sec:-1            #最近一次aof rewrite耗费的时长
aof_current_rewrite_time_sec:-1      #如果rewrite操作正在进行，则记录所使用的时间，单位秒
aof_last_bgrewrite_status:ok             #上次bgrewriteaof操作的状态
aof_last_write_status:ok                     #上次aof写入状态
aof_current_size:4201740                 #aof当前尺寸
aof_base_size:4201687                    #服务器启动时或者aof重写最近一次执行之后aof文件的大小
aof_pending_rewrite:0                       #是否有aof重写操作在等待rdb文件创建完毕之后执行?
aof_buffer_length:0                             #aof buffer的大小
aof_rewrite_buffer_length:0              #aof rewrite buffer的大小
aof_pending_bio_fsync:0                  #后台I/O队列里面，等待执行的fsync调用数量
aof_delayed_fsync:0                          #被延迟的fsync调用数量

# Stats(一般统计信息)
total_connections_received:209561105 #新创建连接个数,如果新创建连接过多，过度地创建和销毁连接对性能有影响，说明短连接严重或连接池使用有问题，需调研代码的连接设置
total_commands_processed:2220123478  #redis处理的命令数
instantaneous_ops_per_sec:279                  #redis当前的qps，redis内部较实时的每秒执行的命令数
total_net_input_bytes:118515678789          #redis网络入口流量字节数
total_net_output_bytes:236361651271       #redis网络出口流量字节数
instantaneous_input_kbps:13.56                  #redis网络入口kps
instantaneous_output_kbps:31.33               #redis网络出口kps
rejected_connections:0                                   #拒绝的连接个数，redis连接个数达到maxclients限制，拒绝新连接的个数
sync_full:1                                                          #主从完全同步成功次数
sync_partial_ok:0                                             #主从部分同步成功次数
sync_partial_err:0                                            #主从部分同步失败次数
expired_keys:15598177                                #运行以来过期的key的数量
evicted_keys:0                                                 #运行以来剔除(超过了maxmemory后)的key的数量
keyspace_hits:1122202228                          #命中次数
keyspace_misses:577781396                     #没命中次数
pubsub_channels:0                                       #当前使用中的频道数量
pubsub_patterns:0                                         #当前使用的模式的数量
latest_fork_usec:15679                                 #最近一次fork操作阻塞redis进程的耗时数，单位微秒
migrate_cached_sockets:0                          #

# Replication(主从信息，master上显示的信息)
role:master                               #实例的角色，是master or slave
connected_slaves:1              #连接的slave实例个数
slave0:ip=192.168.64.104,port=9021,state=online,offset=6713173004,lag=0 #lag从库多少秒未向主库发送REPLCONF命令
master_repl_offset:6713173145  #主从同步偏移量,此值如果和上面的offset相同说明主从一致没延迟
repl_backlog_active:1                   #复制积压缓冲区是否开启
repl_backlog_size:134217728    #复制积压缓冲大小
repl_backlog_first_byte_offset:6578955418  #复制缓冲区里偏移量的大小
repl_backlog_histlen:134217728   #此值等于 master_repl_offset - repl_backlog_first_byte_offset,该值不会超过repl_backlog_size的大小

# Replication(主从信息，slave上显示的信息)
role:slave                                        #实例的角色，是master or slave
master_host:192.168.64.102       #此节点对应的master的ip
master_port:9021                          #此节点对应的master的port
master_link_status:up                   #slave端可查看它与master之间同步状态,当复制断开后表示down
master_last_io_seconds_ago:0  #主库多少秒未发送数据到从库?
master_sync_in_progress:0        #从服务器是否在与主服务器进行同步
slave_repl_offset:6713173818   #slave复制偏移量
slave_priority:100                          #slave优先级
slave_read_only:1                         #从库是否设置只读
connected_slaves:0                      #连接的slave实例个数
master_repl_offset:0         
repl_backlog_active:0                  #复制积压缓冲区是否开启
repl_backlog_size:134217728   #复制积压缓冲大小
repl_backlog_first_byte_offset:0 #复制缓冲区里偏移量的大小
repl_backlog_histlen:0           #此值等于 master_repl_offset - repl_backlog_first_byte_offset,该值不会超过repl_backlog_size的大小

# CPU(CPU计算量统计信息)
used_cpu_sys:96894.66             #将所有redis主进程在核心态所占用的CPU时求和累计起来
used_cpu_user:87397.39           #将所有redis主进程在用户态所占用的CPU时求和累计起来
used_cpu_sys_children:6.37     #将后台进程在核心态所占用的CPU时求和累计起来
used_cpu_user_children:52.83 #将后台进程在用户态所占用的CPU时求和累计起来

# Commandstats(各种不同类型的命令的执行统计信息)
cmdstat_get:calls=1664657469,usec=8266063320,usec_per_call=4.97  

#call每个命令执行次数,usec总共消耗的CPU时长(单位微秒),平均每次消耗的CPU时长(单位微秒)

# Cluster(集群相关信息)
cluster_enabled:1   #实例是否启用集群模式

# Keyspace(数据库相关的统计信息)
db0:keys=194690,expires=191702,avg_ttl=3607772262 #db0的key的数量,以及带有生存期的key的数,平均存活时间

</code></pre>

<h2 id="redis-cluster搭建">redis-cluster搭建：</h2>

<p>docker compose搭建redis-cluster集群。<br />
<a href="https://gitee.com/masxhub/playbook/tree/master/redis-cluster">redis-cluster部署点此</a></p>

<h2 id="zabbix监控">zabbix监控</h2>

<p>原理：通过执行redis的info命令，拿到返回结果。<br />
1、redis所在宿主机安装redis-cli命令。</p>

<pre><code>yum install -y redis
</code></pre>

<p>2、zabbix-agent服务器添加conf文件。</p>

<pre><code>cat /etc/zabbix/zabbix_agentd.d/userparameter_redis_renmai.conf
UserParameter=redis_renmai[*],/data/scripts/redis/redis_renmai.sh $1
</code></pre>

<p>3、zabbix-agent服务器添加shell脚本用于获取redis状态。<br />
<a href="https://gitee.com/masxhub/shell_space/tree/master/redis-info">下载脚本点此：/data/scripts/redis/redis_renmai.sh</a></p>

<p>4、zabbix页面添加shell脚本监控<br />
监控项键值为redis_renmai[used_memory]<br />
<a href="https://blog.csdn.net/qq_33317586/article/details/85232274">参考链接</a></p>

<p>5、redis慢查询结果详解。
慢查询：redis慢查询是redis内部查询的过程。并不是服务到redis或者redis返回结果给服务的过程。因此服务出现慢查询，重启服务无效。除非服务自己去整改。慢查询命令只能调整查看慢查询条数。或者查看历史慢查询的查询语句。并不能改变慢查询现状。除非服务自己去整改。</p>

<pre><code>#查看最近一条慢查询语句
/data # redis-cli -h 127.0.0.1 -p 7000 -a asdfasdfasdf -c slowlog get 1
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
1) 1) (integer) 315874  #id号
   2) (integer) 1582681890  #时间戳
   3) (integer) 125423  #耗时（微秒）
   4) 1) &quot;KEYS&quot; #查询指令
      2) &quot;risk-staff-77670&quot; #匹配value
   5) &quot;10.110.2.68:35476&quot;   # 来源pod ip
   6) &quot;&quot;
</code></pre>


                
                
<div class="entry-shang text-center">
    
	    <p>「真诚赞赏，手留余香」</p>
	
	<button class="zs show-zs btn btn-bred">赞赏支持</button>
</div>
<div class="zs-modal-bg"></div>
<div class="zs-modal-box">
	<div class="zs-modal-head">
		<button type="button" class="close">×</button>
		<span class="author"><a href="https://masxhub.gitee.io/blog"><img src="/blog/img/favicon.png" />Mashaoxun Blog</a></span>
        
	        <p class="tip"><i></i><span>真诚赞赏，手留余香</span></p>
		
 
	</div>
	<div class="zs-modal-body">
		<div class="zs-modal-btns">
			<button class="btn btn-blink" data-num="2">2元</button>
			<button class="btn btn-blink" data-num="5">5元</button>
			<button class="btn btn-blink" data-num="10">10元</button>
			<button class="btn btn-blink" data-num="20">20元</button>
			<button class="btn btn-blink" data-num="50">50元</button>
			<button class="btn btn-blink" data-num="100">100元</button>
		</div>
		<div class="zs-modal-pay">
			<button class="btn btn-bred" id="pay-text">2元</button>
			<p>使用<span id="pay-type">微信</span>扫描二维码完成支付</p>
			<img src="/blog/img/reward/zanshang.jpg"  id="pay-image"/>
		</div>
	</div>
	<div class="zs-modal-footer">
		<label><input type="radio" name="zs-type" value="wechat" class="zs-type" checked="checked"><span ><span class="zs-wechat"><img src="/blog/img/reward/wechat-btn.png"/></span></label>
		<label><input type="radio" name="zs-type" value="alipay" class="zs-type" class="zs-alipay"><img src="/blog/img/reward/alipay-btn.png"/></span></label>
	</div>
</div>
<script type="text/javascript" src="/blog/js/reward.js"></script>

                

                <hr>
                <ul class="pager">
                    
                    
                    <li class="next">
                        <a href="2019/01/29/ceph-profile/" data-toggle="tooltip" data-placement="top" title="ceph简介">Next
                            Post &rarr;</a>
                    </li>
                    
                </ul>

                
<div id="disqus-comment"></div>



            </div>
            
            <div class="
                col-lg-8 col-lg-offset-2
                col-md-10 col-md-offset-1
                sidebar-container">

                
                
                <section>
                    <hr class="hidden-sm hidden-xs">
                    <h5><a href="/tags/">FEATURED TAGS</a></h5>
                    <div class="tags">
                        
                        
                        
                        <a href="/blog/tags/ceph" title="ceph">
                            ceph
                        </a>
                        
                        
                        
                        
                        
                        <a href="/blog/tags/docker" title="docker">
                            docker
                        </a>
                        
                        
                        
                        <a href="/blog/tags/k8s" title="k8s">
                            k8s
                        </a>
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        <a href="/blog/tags/%E5%AD%98%E5%82%A8" title="存储">
                            存储
                        </a>
                        
                        
                        
                        <a href="/blog/tags/%E7%9B%91%E6%8E%A7" title="监控">
                            监控
                        </a>
                        
                        
                        
                        
                    </div>
                </section>
                

                
                
                <section>
                    <hr>
                    <h5>FRIENDS</h5>
                    <ul class="list-inline">
                        
                        <li><a target="_blank" href="http://www.zrq.org.cn">瑞卿博客</a></li>
                        
                    </ul>
                </section>
                
            </div>
        </div>
    </div>
</article>




<footer>
    <div class="container">
        <div class="row">
            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
                <ul class="list-inline text-center">
                   
                    
                    <li>
                        <a href="mailto:youremail@gmail.com">
                            <span class="fa-stack fa-lg">
                                <i class="fa fa-circle fa-stack-2x"></i>
                                <i class="fa fa-envelope fa-stack-1x fa-inverse"></i>
                            </span>
                        </a>
                    </li>
		    
                    
                    
                    
                    

                    

		    
                    
                    <li>
                        <a target="_blank" href="/blog/img/404.jpeg">
                            <span class="fa-stack fa-lg">
                                <i class="fa fa-circle fa-stack-2x"></i>
                                <i class="fa fa-wechat fa-stack-1x fa-inverse"></i>
                            </span>
                        </a>
                    </li>
		    
                    
                    <li>
                        <a target="_blank" href="https://github.com/yourgithub">
                            <span class="fa-stack fa-lg">
                                <i class="fa fa-circle fa-stack-2x"></i>
                                <i class="fa fa-github fa-stack-1x fa-inverse"></i>
                            </span>
                        </a>
                    </li>
		    
                    
                    
                </ul>
		<p class="copyright text-muted">
                    Copyright &copy; Mashaoxun Blog , 0001
                    <br>
                    <a href="https://themes.gohugo.io/hugo-theme-cleanwhite">CleanWhite Hugo Theme</a> by <a href="https://zhaohuabing.com">Huabing</a> |
                    <iframe
                        style="margin-left: 2px; margin-bottom:-5px;"
                        frameborder="0" scrolling="0" width="100px" height="20px"
                        src="https://ghbtns.com/github-btn.html?user=zhaohuabing&repo=hugo-theme-cleanwhite&type=star&count=true" >
                    </iframe>
                </p>
            </div>
        </div>
    </div>
</footer>




<script>
    function async(u, c) {
      var d = document, t = 'script',
          o = d.createElement(t),
          s = d.getElementsByTagName(t)[0];
      o.src = u;
      if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
      s.parentNode.insertBefore(o, s);
    }
</script>






<script>
    
    if($('#tag_cloud').length !== 0){
        async("/js/jquery.tagcloud.js",function(){
            $.fn.tagcloud.defaults = {
                
                color: {start: '#bbbbee', end: '#0085a1'},
            };
            $('#tag_cloud a').tagcloud();
        })
    }
</script>


<script>
    async("https://cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.js", function(){
        var $nav = document.querySelector("nav");
        if($nav) FastClick.attach($nav);
    })
</script>


<script>
    (function(){
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https'){
       bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
      }
      else{
      bp.src = 'http://push.zhanzhang.baidu.com/push.js';
      }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
</script>







</body>
</html>
